package com.user.service.serviceImpl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.common.ResultCode;
import com.common.RocketMqConstant;
import com.common.Util.ObjectUtil;
import com.common.Util.StringUtils;
import com.user.config.Exception.ServiceException;
import com.user.config.Exception.ServiceExceptionUtil;
import com.user.config.SMSConf;
import com.user.controller.vo.loginVo;
import com.user.controller.vo.userVo;
import com.user.dao.SysUserDao;
import com.user.dao.SysUserRoleDao;
import com.user.entity.SysUser;
import com.user.entity.SysUserRole;
import com.user.rocketmq.RocketMqTemplate;
import com.user.rocketmq.SMS.SMSMessage;
import com.user.service.IUser;
import com.user.util.RequestUtil;
import com.user.util.impl.RedisUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.Date;

/**
 * @program: Member_Perks_Store
 * @description:
 * @author: 刘童
 * @create: 2024-06-20
 **/

@Service
public class IUserImpl extends ServiceImpl<SysUserDao, SysUser> implements IUser {

    private SysUserDao userDao;


    @Resource
    private SysUserRoleDao userRoleDao;


    @Override
    public boolean improvePermission(long user_id, long role_id) {
        try {
            // 检查数据有效性，isValidRole方法用于验证角色ID的有效性
            if (!isValidRole(role_id)) {

                return false;
            }
            // 根据用户ID查询用户角色信息
            SysUserRole sysUserRole = userRoleDao.selectById(user_id);
            if (sysUserRole == null) {
                // 如果查询不到用户角色信息,返回

                return false;
            }

            // 更新用户角色ID
            sysUserRole.setRoleId(role_id);

            // 更新用户角色信息
            userRoleDao.updateById(sysUserRole);

            return true;
        } catch (Exception e) {
            // 对于任何异常，可以考虑记录日志并返回更新失败
            return false;
        }
    }

    private boolean isValidRole(long role_id) {
        // role_id从1,2,3代表超管，管理员，小二，检查roleId是否大于0
        return role_id > 1 && role_id < 3;
    }


}
